package cc.mrbird.febs.system.vo;

import cc.mrbird.febs.common.validator.CardIdValidator;
import cc.mrbird.febs.common.validator.MobileValidator;
import cc.mrbird.febs.common.validator.NameExcelValidator;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 *
 *
 * @author dtwei
 */
@Data
@Excel("住户信息")
public class TResidentExcelVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 姓名
     */
    @ExcelField(
            value = "姓名",
            required = true,
            validator = NameExcelValidator.class,
            comment = "请填写用户名，最大长度为20"
    )
    private String rsName;

    /**
     * 住宅编码
     */
    @ExcelField(
            value = "住宅编码",
            required = true,
            validator = NameExcelValidator.class,
            comment = "请填写住宅编码，最大长度为20"
    )
    private String houseCode;

    /**
     * 家庭详细地址
     */
    @ExcelField(value = "家庭详细地址")
    private String houseAdr;

    /**
     * 与户主关系
     */
    @ExcelField(value = "与户主关系", required = true, comment = "请填写与户主关系")
    private String relation;

    /**
     * 所属区域ID
     */
    private Long areaId;

    /**
     * 所属四级片区
     */
    @ExcelField(
            value = "所属四级片区",
            required = true,
            comment = "请填写所属片区"
    )
    private String areaName;

    /**
     * 性别
     */
    @ExcelField(
            value = "性别",
            required = true,
            comment = "请填写性别",
            readConverterExp = "女=0,男=1",
            writeConverterExp = "0=女,1=男"
    )
    private String sex;

    /**
     * 民族
     */
    @ExcelField(value = "民族")
    private String nation;

    /**
     * 身份证号
     */
    @ExcelField(
            value = "身份证号",
            validator = CardIdValidator.class
    )
    private String cardId;

    /**
     * 联系电话
     */
    @ExcelField(
            value = "联系电话",
            validator = MobileValidator.class
    )
    private String mobile;

    /**
     * 政治面貌
     */
    @ExcelField(value = "政治面貌")
    private String politics;

    /**
     * 所属支部
     */
    @ExcelField(value = "所属支部")
    private String politicsBranch;

    /**
     * 户籍所在地
     */
    @ExcelField(value = "户籍所在地")
    private String censusAdr;

    /**
     * 文化程度
     */
    @ExcelField(value = "文化程度")
    private String culture;

    /**
     * 就业/就学单位
     */
    @ExcelField(value = "就业/就学单位")
    private String workUnit;

    /**
     * 外出务工地点
     */
    @ExcelField(value = "外出务工地点")
    private String workAdr;

    /**
     * 收入
     */
    @ExcelField(value = "年收入")
    private BigDecimal income;

    /**
     * 特殊人员标记
     */
    @ExcelField(value = "特殊人员标记")
    private String status;

    /**
     * 住房情况
     */
    @ExcelField(value = "住房情况")
    private String houseStatus;
}
